package com.example.designpatterns.singleton;

/**
 * 饿汉式单例模式
 * 
 * 在类加载时就创建实例，线程安全但可能造成资源浪费
 */
public class Singleton {
    // 在类加载时就创建实例
    private static final Singleton INSTANCE = new Singleton();
    
    // 私有构造方法，防止外部实例化
    private Singleton() {
        // 防止通过反射创建多个实例
        if (INSTANCE != null) {
            throw new RuntimeException("单例模式不允许创建多个实例！");
        }
        System.out.println("饿汉式单例被初始化");
    }
    
    // 提供全局访问点
    public static Singleton getInstance() {
        return INSTANCE;
    }
    
    // 业务方法
    public void doSomething() {
        System.out.println("饿汉式单例执行业务方法");
    }
}